package top.pengdong.pictureShare.common.pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Null;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class RegisterUser implements Serializable {
	/**
	 * 用户名
	 */
	@NotBlank(message = "用户名不能为空")
	@Length(min = 2, max = 10, message = "用户名最小2位 ， 最大 10位")
	private String username;
	/**
	 * 用户密码
	 */
	@NotBlank(message = "密码不为空")
	@Length(min = 6, max = 20, message = "密码最小6位，最大20位")
	private String password;

	private String password2;
	/**
	 * 用户昵称
	 */
	@Length(max = 20, message = "昵称不能超过20个字符")
	@Pattern(regexp = "^[\\u4E00-\\u9FA5A-Za-z0-9\\*]*$", message = "用户昵称限制：最多20字符，包含文字、字母和数字")
	private String nickname;

	/**
	 * 用户邮箱
	 */
	@NotBlank(message = "邮箱不为空")
	@Email(message = "请输入正确格式的邮箱")
	private String mail;

	/**
	 * 用户电话
	 */
	@Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
	private String cellphone;

	/**
	 * 年龄
	 */
	private Integer age;

	/**
	 * 性别 只能是男和女
	 */
	private String gender;

	/**
	 * 盐值
	 */
	@Null
	private String salt;

	/**
	 * 确认码
	 */
	@Null
	private String confirmCode;

	/**
	 * 激活失效时间
	 */
	@Null
	private Date activationTime;

	/**
	 * 是否可用
	 */
	@Null
	private Byte isValid;
}
